package com.cda.api;


import com.cda.entity.Person;
import net.sf.json.JSONObject;

public interface FaceApi {


    /**
     * 3.1秘钥接口
     * @return
     *
     */
    String setDeviceKey();


    /**
     * 3.23获取访客模式配置信息
     * @return
     */
    String getVisitorConfig(String key);

    /**
     *3.2设置设备基础信息
     * @param content
     */
    String setDeviceInfo(JSONObject content);


    /**
     * 3.3获取设备基础信息
     * @return
     */
    String getDeviceInfo();


    /**
     * 3.6创建过闸人员信息
     * @param content json
     * @return
     */
    String setPerson(JSONObject content);


    /**
     * 3.9根据ID删除过闸人员信息
     * @param str 删除人员（可单人、批量、全部）
     * [id1,id2,...,idn],如传入[]删除全部
     * @return
     */
    String removePerson(String str);


    /**
     * 3.12设置过闸数据自动上传的URL
     * @param url 上传数据的url
     * @return
     *  注意：终端会自动根据url以POST方式上传过闸记录，上传字段与listRecord接口返回数据一致
     */
    String setRecordCallback(String url);


    /**
     * 3.13获取过闸数据自动上传的URL
     * @return
     */
    String getRecordCallback();

    /**
     *3.16配置心跳URL
     * @param url  心跳url	String	是	终端根据url以POST方式访问服务器，可能还会上传其他字段
     * @param period 心跳周期	double	是	每两次心跳间隔时间，单位:秒，大于0
     * @return
     */
    String setHeartBeat(String url,double period);


    /**
     * 3.19检查照片是否可用、重复
     * @param photo
     * @return
     * isValid：int,  0-照片可用 1-尺寸错误 2-格式错误 3-找不到人脸 4-特征值提取失败
     * isExist：boolean,  true-已经存在此人（不一定是同一张照片） false-不存在此人
     */
    String check(String photo);


    /**
     * 3.20拍照
     * @return
     * tipsBefore    拍照前提示语	String
     * tipsAfter	拍照后提示语	String
     * count	连拍次数	int		取值1,2,3，默认1
     */
    String photo(String tipsBefore,String tipsAfter,int count);


    /**
     * 3.11删除过闸流水日志
     * @param ts
     * @return
     */
    String removeRecord(double ts);


    /**
     * 上传人脸识别设备图像到服务端
     * @param p
     */

    void uploadRecord(Person p);

    /**
     * 3.17获取心跳URL
     */
     String getHeartBeat();
    /**
     * 3.15开闸
     * @return
     */
    String open();
}
